1. Limited Copyright Waiver
A portion of the disclosure of this patent document contains computer code listings to which the claim of copyright protection is made. The copyright owner has no objection to the facsimile reproduction by any person of the patent document or the patent disclosure, as it appears in the U.S. Patent and Trademark Office patent file or records, but reserves all other rights whatsoever.
2. Field of the Invention
The present invention relates generally to file servers, and more particularly to migration of file systems between file servers.
3. Background Art
Network applications have required increasingly large amounts of data storage. Network data storage has been provided by a file server having at least one processor coupled to one or more disk drives. The file server executes a file system program that maps file names and block offsets in the files to physical addresses of data blocks on the disk drives. Typically the file system program maintains a UNIX-based file system having a hierarchical file system structure including directories and files, and each directory and file has an “inode” containing metadata of the directory or file. Popular UNIX-based file systems are the UNIX file system (ufs), which is a version of Berkeley Fast File System (FFS) integrated with a vnode/vfs structure, and the System V file system (s5fs). The implementation of the ufs and s5fs file systems is described in Chapter 9, pp. 261-289, of Uresh Vahalia, Unix Internals: The New Frontiers, 1996, Prentice Hall, Inc., Simon & Schuster, Upper Valley River, N.J. 07458.
Network clients typically use a network file system access protocol to access one or more file systems maintained by the file server. Popular network file system access protocols are the Network File, System (NFS) and the Common Internet File System (CIFS). NFS is described in “NFS: Network File Systems Protocol Specification,” RFC 1094, Sun Microsystems, Inc., Mar. 1, 1989. The CIFS protocol is described, for example, in Paul L. Leach and Dilip C. Naik, “A Common Internet File System,” Microsoft Corporation, Dec. 19, 1997.
During maintenance of a data processing network, it is often necessary or desirable to migrate file systems from one file server (the “source” file server) to another file server (the “target” file server). For example, files are typically migrated from an obsolete file server when the obsolete file server is to be removed from the data processing network. When a new file server is added to a network for increased storage capacity, file systems are typically migrated to the new file server from other file servers in order to balance loading among the file servers in the network. Migration is also used to move file systems between file servers in a network in order to consolidate related file systems in one particular file server for improved management of the related files.
The migration of file systems from a source file server to a target file server has been done in various ways. In general, it is not possible to simply copy the contents of the physical disks from the source file server to the target file server. The physical disk configuration of two file servers is very often different, and for this reason the file system performs a mapping of files to logical disk blocks instead of physical disk blocks. A lower layer in each file server maps the logical disk blocks to physical disk blocks in accordance with the particular physical disk drive configuration of each file server. It is sometimes possible to simply copy the contents of the logical disks from the source file server to the target file server, but most often each file server will have a different version or kind of file system program that would require a change in the precise organization of data on the logical drives of the target file server.
Typically migration is performed by the source file server converting the file system to a sequential format such as a tape format, the source file server transmitting the sequentially-formatted file system to the target file server, and the target file server converting the file system to the logical disk format required by the version and kind of file system program in the target file server. In a UNIX-based file system, the source file system may use a “tar” command to put the file system in a sequential tape format, and the target file server may use an “untar” command to convert the sequential tape format of the file system to the required logical disk format. Such a method of migration, however, does not permit the file system data to be updated during the time required for formatting, transmitting, and unformatting the file system.